		; list directive to define processor
		list      p=12f629            
		; processor specific variable definitions
		#include <p12f629.inc>        

		__CONFIG   	_CP_OFF & _MCLRE_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _BODEN_OFF & _CPD_OFF &_PWRTE_OFF
	
#DEFINE	LED		GPIO,0	
#DEFINE LED_IO	TRISIO,0

CNT0	EQU		20H
CNT1	EQU		21H
CNT2	EQU		22H
;---------------------------------
		ORG		0000H
			
		MOVLW 	07H	
		MOVWF 	CMCON		; TURN-OFF analog comparator 
	
		BSF		STATUS,RP0	; select bank 1
		CALL	3FFH		; Load cal value
		MOVWF	OSCCAL
		BCF		LED_IO		; set as output
		BCF		STATUS,RP0	; select bank 0
				
LOOP:	BSF		LED
		CALL	DELAY
		BCF		LED
		CALL	DELAY
		GOTO	LOOP		
		
;---------------------------------
; DELAY 0.5 SECONDS ROUTINE
;--------------------------------- 
DELAY:	MOVLW	03H
		MOVWF	CNT0
		MOVLW	18H
		MOVWF	CNT1
		MOVLW	02H
		MOVWF	CNT2
Delay_0
		DECFSZ	CNT0, f
		GOTO	$+2
		DECFSZ	CNT1, f
		GOTO	$+2
		DECFSZ	CNT2, f
		GOTO	Delay_0

		;6 cycles
		GOTO	$+1	;delay 2 cycles
		GOTO	$+1	;delay 2 cycles
		GOTO	$+1	;delay 2 cycles
		;4 cycles (including call)
		RETURN
		
		END
